Inheritance And Solving The Diamond Problem In Kotlin